package com.dayu.behavior.command;

/**
 * 命令模式：请求以命令的形式包裹在对象中，并传给调用对象。调用对象寻找可以处理该命令的合适的对象，并把该命令传给相应的对象，该对象执行命令。
 * 在某些场合，比如要对行为进行"记录、撤销/重做、事务"等处理，
 * 这种无法抵御变化的紧耦合是不合适的。在这种情况下，如何将"行为请求者"与"行为实现者"解耦？将一组行为抽象为对象，可以实现二者之间的松耦合。
 */
public class CommandTest {

    /**
     * 优点：1、降低了系统耦合度。 2、新的命令可以很容易添加到系统中去。
     * 缺点：使用命令模式可能会导致某些系统有过多的具体命令类。
     */

    public static void main(String[] args)
    {
        Command cmd=new ConcreteCommand();
        Invoker ir=new Invoker(cmd);
        System.out.println("客户访问调用者的call()方法...");
        ir.call();
    }



}
